<?php

class Ambulatoria extends CI_Controller {

    function __construct() {
        parent::__construct();
    }

    public function index() {
        $login = $this->loggedIn();
        $args['title'] = 'Atención ambulatoria';
        $args['content'] = 'serviciosA/ambulatoria';


        //Junior para que usas esto? . Lo comente porque no se esta usando.
        //$session_data = $this->session->userdata['logged_in'];
        $args['username'] = $login['username'];
        $this->load->view('view', $args);
    }

    function mis_pacientes() {
        $login = $this->loggedIn();
        $usuario=$this->session->userdata('logged_in');
        $idPersona=$usuario['persona'];
        $this->load->model('Cita_model');
        $esp=$this->Cita_model->buscarEspecialidadPadrexPersonal($idPersona);
        if (count($esp)!=0){
            if ($esp[0]['especialidad']==ID_ESP_TERAPIA){
                $pacientes = $this->Cita_model->buscarPacientesxPersonal($idPersona);
            }
            else{
                $pacientes = $this->Cita_model->buscarPacientes();
            }
        }else{
            $pacientes = $this->Cita_model->buscarPacientes();
        }
        $args['title'] = 'Mis citas';
        $args['content'] = 'consulta/lista_pacientes';
        $args['pacientes'] = $pacientes;

        $args['username'] = $login['username'];

        $this->load->view('view', $args);
    }

    public function registrarConsulta($paso, $idcita) {

        $login = $this->loggedIn();

//        $this->load->model('Persona_model');
//        $persona = $this->Persona_model->buscarPersona($codigo);
        $this->load->model('Consulta_model');

        $this->load->model('Cita_model');
        $cita = $this->Cita_model->buscarCitaAmbulatoria($idcita);
        $this->load->model('Enfermedad_model');
        $enfermedades = $this->Enfermedad_model->listarEnfermedades();

        $args['title'] = 'Atención ambulatoria';
        if ($paso == 1) {
            $args['content'] = 'consulta/registrarConsulta';

            $campos = $this->Consulta_model->obtenerPlantilla($cita['Especialidad']);
            $args['campos'] = $campos;
        } else {
            $args['content'] = 'consulta/registrarTratamiento';

            $this->load->model('Tratamiento_model');

            $tratamientosRecom = $this->Tratamiento_model->listarTratamientos($cita['Procedimiento']);
            $args['recomendaciones'] = $tratamientosRecom;

            $frecuencias = $this->Tratamiento_model->listarFrecuencias();
            $args['frecuencias'] = $frecuencias;

            $medicamentos = $this->Tratamiento_model->listarMedicamentos();
            $args['medicamentos'] = $medicamentos;
            if($paso==2){
                $args['edicion']=1;
            }else{
               $args['edicion']=2; 
            }    
            }
            
            
        //$args['persona'] = $persona;
        $args['enfermedades'] = $enfermedades;
        $args['cita'] = $cita;

        $args['username'] = $login['username'];
        $session_data = $this->session->userdata['logged_in'];


        $this->load->view('view', $args);
    }

    public function tratamiento($idcita) {

        $login = $this->loggedIn();
        $args['title'] = 'Atención ambulatoria';

        $this->load->model('Tratamiento_model');

        if ($this->input) {


            $datos = array();
            $medicamentos = $this->input->get('medicamento');
            $frecuencia = $this->input->get('frecuencia');
            $periodicidad = $this->input->get('periodicidad');
            $dosis = $this->input->get('dosis');
            $indicaciones = $this->input->get('indicaciones');
            $proc = $this->input->get('procedimiento');

            $i = 0;
            $resultado = true;

            $trat = array(
                'Indicaciones' => $this->input->get('tratamiento')
            );

            $resultado = $resultado && $this->Tratamiento_model->actualizarTratamiento($trat, $proc);

            foreach ($medicamentos as $med) {


                $datos = array(
                    'Procedimiento' => $proc,
                    'Descripcion' => $indicaciones[$i],
                    'Frecuencia' => $frecuencia[$i],
                    'ciclos' => $periodicidad[$i],
                    'dosificacion' => $dosis[$i],
                    'Producto' => $med,
                    'TipoMedida' => 1,//cucharita
                    'Cantidad'=>$frecuencia[$i]*$dosis[$i]
                );


                $resultado = $resultado && $this->Tratamiento_model->nuevo($datos);
                $i++;
            }
        }

        $args['content'] = 'consulta/prueba';
        $args['username'] = $login['username'];

        if ($resultado)
            $this->session->set_flashdata('success', "Se guardó la atención con éxito");
        else
            $this->session->set_flashdata('error', "Lo sentimos T__T");
        //$this->load->view('view',$args);
        redirect(base_url() . 'ambulatoria/registrarConsulta/3/'.$idcita, 'refresh');    }

    public function orden($idProc, $indicador = null) {

        $login = $this->loggedIn();
        $args['title'] = 'Generar Ordenes';
        //INDICADOR DEFINE SI IDPROC ES UN PROCESO U OTRA ORDEN
        //if (($indicador == null) || ($indicador == 0)) {
        $this->load->model('Consulta_model');
        $consulta = $this->Consulta_model->consultaByProcedimiento($idProc);
        $args['cita'] = $consulta;
//        } else {
//            //HAY Q SACAR LA SUPERORDEN PARA PODER CARGAR LOS DATOS DEL PACIENTE
//        }

        $codigo = $this->input->get('codigo');
        $procedimiento = $this->input->get('procedimiento');


        $login = $this->loggedIn();

        $args['title'] = 'Orden médica';

        if (($indicador == null) || ($indicador == 0))
            $args['content'] = 'orden/registrarOrden';
        else
            $args['content'] = 'orden/registrarOrdenCirugia';


        $args['codigo'] = $codigo;
        $args['procedimiento'] = $procedimiento;


        $args['username'] = $this->args['username'];

        $args['indicador'] = $indicador;
        $session_data = $this->session->userdata['logged_in'];


        $this->load->view('view', $args);
    }

    public function editarOrden($idProc, $modificar) {

        $login = $this->loggedIn();
        $args['title'] = 'Agregar Ordenes';
        //INDICADOR DEFINE SI IDPROC ES UN PROCESO U OTRA ORDEN
        //if (($indicador == null) || ($indicador == 0)) {
        $this->load->model('Consulta_model');
        $consulta = $this->Consulta_model->consultaByProcedimiento($idProc);
        $args['cita'] = $consulta;

        $login = $this->loggedIn();



        $args['content'] = 'orden/registrarOrdenListaCirugia';



        $args['procedimiento'] = $idProc;

        $args['modificar'] = $modificar;


        $args['username'] = $this->args['username'];

        $session_data = $this->session->userdata['logged_in'];


        $this->load->view('view', $args);
    }

    public function guardarOrden() {


        $login = $this->loggedIn();
        $args['title'] = 'Latisoft';



        $this->load->model('Ambulatoria_model');



        if ($this->input) {



            $especialidad = $this->input->get('especialidad');
            $sesiones = $this->input->get('sesiones');
            $indicaciones = $this->input->get('indicaciones');
            $procedimiento = $this->input->get('procedimiento');
            $persona = $this->input->get('codigo');

            $i = 0;
            $resultado = true;

            foreach ($especialidad as $esp) {


                $datos = array(
                    'Procedimiento' => $procedimiento,
                    'Especialidad' => $especialidad[$i],
                    'NumeroSesiones' => $sesiones[$i],
                    'Indicaciones' => $indicaciones[$i],
                    'Persona' => $persona,
                    'FechaOrden' => date("Y-m-d H:i:s"),
                    'EstadoOrden' => 1
                );


                $resultado = $resultado && $this->Ambulatoria_model->nuevo($datos);
                $i++;
            }
        }

        //$args['content'] = 'consulta/prueba';
        $args['username'] = $login['username'];


        if ($resultado)
            $this->session->set_flashdata('success', "Se guardó la orden con éxito");
        else
            $this->session->set_flashdata('error', "Lo sentimos T__T");




        //$this->load->view('view',$args);
        redirect(base_url() . 'home', 'refresh');
    }

    public function guardarOrdenCirugia() {

        $login = $this->loggedIn();
        $args['title'] = 'Latisoft';

        $codigo = $this->input->get('codigo');
        $idProc = $this->input->get('procedimiento');

        $this->load->model('Consulta_model');
        $consulta = $this->Consulta_model->consultaByProcedimiento($idProc);
        $args['cita'] = $consulta;


        $args['codigo'] = $codigo;
        $args['procedimiento'] = $idProc;


        $this->load->model('Ambulatoria_model');



        $resultado = true;

        if ($this->input) {



            $especialidad = $this->input->get('especialidadCirugia');
            $indicaciones = $this->input->get('indicacionesSel');
            $procedimiento = $this->input->get('procedimiento');
            $persona = $this->input->get('codigo');



            $datos = array(
                'Procedimiento' => $procedimiento,
                'Especialidad' => $especialidad,
                'NumeroSesiones' => 0,
                'Indicaciones' => $indicaciones,
                'Persona' => $persona,
                'FechaOrden' => date("Y-m-d H:i:s"),
                'EstadoOrden' => 1
            );


            $resultado = $resultado && $this->Ambulatoria_model->nuevo($datos);
        }

        $args['content'] = 'orden/registrarOrdenListaCirugia';
        $args['modificar'] = 0;
        $args['username'] = $login['username'];
        

        if ($resultado)
            $this->session->set_flashdata('success', "Orden de cirugía generada");
        else
            $this->session->set_flashdata('error', "Lo sentimos T__T");
        $this->load->view('view', $args);
        //redirect(base_url() . 'home', 'refresh');
    }

    public function guardarOrdenListaCirugia() {

        $modificar = $this->input->get('modificar');

        


        $login = $this->loggedIn();
        $args['title'] = 'Latisoft';
        
        
        $this->load->model('Ambulatoria_model');
        
        if (($modificar == null) or ($modificar == 0))  {

            
            $temporal = $this->Ambulatoria_model->ultimaOrden();
            $ordenPadre = $temporal[0]['orden'];
        }
        else
            $ordenPadre = $modificar;


        if ($this->input) {



            $especialidad = $this->input->get('especialidad');
            $sesiones = $this->input->get('sesiones');
            $indicaciones = $this->input->get('indicaciones');
            $procedimiento = $this->input->get('procedimiento');
            $persona = $this->input->get('codigo');

            $i = 0;
            $resultado = true;

            foreach ($especialidad as $esp) {


                $datos = array(
                    'Procedimiento' => $procedimiento,
                    'Especialidad' => $especialidad[$i],
                    'NumeroSesiones' => $sesiones[$i],
                    'Indicaciones' => $indicaciones[$i],
                    'OrdenPadre' => $ordenPadre,
                    'Persona' => $persona,
                    'FechaOrden' => date("Y-m-d H:i:s"),
                    'EstadoOrden' => 1
                );


                $resultado = $resultado && $this->Ambulatoria_model->nuevo($datos);
                $i++;
            }
        }

        //$args['content'] = 'consulta/prueba';
        $args['username'] = $login['username'];

        if ($resultado)
            $this->session->set_flashdata('success', "Se guardó la orden con éxito");
        else
            $this->session->set_flashdata('error', "Lo sentimos T__T");

        //$this->load->view('view',$args);
        redirect(base_url() . 'home', 'refresh');
    }

    public function wsGetActividades() {
        $idPadre = $this->input->get("idEspecialidad");
        $this->load->model('Ambulatoria_model');
        $actividades = $this->Ambulatoria_model->getActividades($idPadre);
        $jsonData = json_encode($actividades);
        echo $jsonData;
    }

         
    
    public function wsGetActividades1(){
        $idPadre = $this->input->get("idEspecialidad");
        $this->load->model('Ambulatoria_model');
    	$actividades = $this->Ambulatoria_model->getActividades1($idPadre);
    	$jsonData = json_encode($actividades);
    	echo $jsonData;
    }
    
    
    
    
    
    
    
    public function lista_examenes() {
        $login = $this->loggedIn();

        $this->load->model('Cita_model');
        $pacientes = $this->Cita_model->buscarPacientesExamenes();

        $args['title'] = 'Exámenes';
        $args['content'] = 'ambulatoria/lista_examenes';
        $args['pacientes'] = $pacientes;

        $args['username'] = $login['username'];

        $this->load->view('view', $args);
    }

    public function Registrar_examen() {
        $login = $this->loggedIn();

        $args['title'] = 'Exámenes';
        $args['content'] = 'ambulatoria/examen';

        $this->load->model('Cita_model');
        $cita = $this->Cita_model->buscarCitaExamen($idcita);
        $args['cita'] = $cita;
        $args['username'] = $login['username'];

        $this->load->view('view', $args);
    }

    public function atencion() {
        $login = $this->loggedIn();

        if ($this->input) {

            $datos = array();
            $enfermedades = array();

            $this->load->model('Consulta_model');
            $this->load->model('Persona_model');
            
            

            $enfSelec = $this->input->post('enfermedad');
            $nombreenfSelec = $this->input->post('nombreenfermedad');
            $detalle = $this->input->post('detalle');
            $nombredato = $this->input->post('nombredato');
            $i = 0;

            $usuario=$this->session->userdata('logged_in');
            
            $idPersona=$usuario['persona'];
            $persona=$this->Persona_model->obtenerPersona($this->input->post('PersonaP'));
           
            $mensaje="";
            $mensaje=$mensaje."Paciente: ".$persona['Nombres']." ".$persona['Apellido_Paterno']." ".$persona['Apellido_Materno']."\n";
                       
            
            $datos = array(
                'Cita' => $this->input->post('idCita'),
                'Especialidad' => $this->input->post('Especialidad'),
                'Resultado' => $this->input->post('Resultado'),
                'FechaInicio'=>date("Y-m-d H:i:s"),
                'FechaFin'=>date("Y-m-d H:i:s"),
                'PersonaD' => $idPersona,
                'Barthel' => 0);
            if (($this->Consulta_model->obtenerEspecialidadPadreSiguiente($datos['Especialidad'],ID_ESP_TERAPIA))==1){
                $suma=0; $total=21;
                for ($i=1;$i<=21;$i++){
                    $valo=$this->input->post(''+$i+'');
                    if ($valo==4){$valo=0; $total--;}
                    $suma=$suma+$valo;
                }
                $datos['Barthel']=($suma/$total);
            }
            $resultado = $this->Consulta_model->nuevo($datos, $this->input->post('PersonaP'));
            if (($this->Consulta_model->obtenerEspecialidadPadreSiguiente($datos['Especialidad'],ID_ESP_TERAPIA))==1){
                $procedimiento = $this->Consulta_model->ultimoProcedimientoTerapia($this->input->post('PersonaP'));
            }
            else if (($this->Consulta_model->obtenerEspecialidadPadreSiguiente($datos['Especialidad'],ID_ESP_EMERGENCIAS))==1){
                $procedimiento = $this->Consulta_model->ultimoProcedimientoEmergencia($this->input->post('PersonaP'));
            } else{
                $procedimiento = $this->Consulta_model->ultimoProcedimientoAmbulatoria($this->input->post('PersonaP'));
            }
            
            if($enfSelec!=null){
                
                $mensaje=$mensaje."\n"."Enfermedades diagnosticadas"."\n\n";
                foreach ($enfSelec as $enf) {
                    

                    $enfermedades = array(
                        'Enfermedad' => $enf,
                        'Detalle' => $detalle[$i]
                    );

                    $resultado = $resultado && $this->Consulta_model->nuevaEnfermedad($enfermedades, $procedimiento['procedimiento']);
                    
                    $mensaje=$mensaje."Enfermedad:  ".$nombreenfSelec[$i]."\n"."Detalle:  ".$detalle[$i]."\n\n";
                    $i++;
                }
            }
            $j = 0;
            
            
            if (($this->input->post('dato'))) {
                
                $mensaje=$mensaje."\n";
                $datosReg = $this->input->post('dato');
                foreach ($datosReg as $dato) {
                    

                    $datosMet = array(
                        'Especialidad' => $this->input->post('Especialidad'),
                        'Valor' => $dato
                    );
                    $mensaje=$mensaje.$nombredato[$j].": ".$dato."\n";
                    $j++;
                    $resultado = $resultado && $this->Consulta_model->nuevoDato($datosMet, $procedimiento['procedimiento'], $j);
                }
                
                
            }

            
            if ($resultado){
                
                $mensaje=$mensaje."\n"."Diagnóstico: ".$this->input->post('Resultado');  

                
                
                $this->load->library('email');
                $this->email->set_newline("\r\n");
                
                //$this->email->initialize($config); 
                //var_dump($persona);
                if($persona['email']!=null){
                    
                    
                    $this->email->from('latisoft@latisoft.com', 'Hospital Latipsoh');
                    $this->email->to($persona['email']);
                    //$this->email->cc('otro@otro-ejemplo.com');
                    //$this->email->bcc('ellos@su-ejemplo.com');
                    $this->email->subject('Resultado de atención ambulatoria');
                    $this->email->message($mensaje);
                    $this->email->send();
                //echo $this->email->print_debugger();

                }
                
                $this->session->set_flashdata('success', "Se guardó la atención con éxito");
            }else
                $this->session->set_flashdata('error', "Lo sentimos");
            redirect(base_url() . 'ambulatoria/registrarConsulta/2/' . $this->input->post('idCita'), 'refresh');
        }
    }

    public function registrarTratamiento($codigo) {
        $login = $this->loggedIn();

        $this->load->model('Persona_model');
        $persona = $this->Persona_model->buscarPersona($codigo);

        $cita['Especialidad'] = "";

        $args['title'] = 'Atención ambulatoria';
        $args['content'] = 'consulta/registrarTratamiento';
        $args['mcodigo'] = $codigo;
        $args['cita'] = $cita;
        $args['persona'] = $persona;


        $args['username'] = $this->args['username']; //$login['username'];
        $session_data = $this->session->userdata['logged_in'];


        $this->load->view('view', $args);
        $login = $this->loggedIn();
    }
    
    function epicrisis(){
        
        require_once("C:/xampp/htdocs/latisoft/system/libraries/dompdf/dompdf_config.inc.php");
        $html = file_get_contents('http://localhost/latisoft/ambulatoria/registrarConsulta/1/145');
        // Obtenemos el código html de la página web que nos interesa
        $dompdf = new DOMPDF();
        // Creamos una instancia a la clase
        $dompdf->load_html($html);
        $dompdf->render();
        $dompdf->stream("ejemplo.pdf");
        exit();

    }
    

}

?>
